package com.education.wisdom.pojo;

import com.education.common.core.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 支付记录表 jr_payment_record
 *
 * @author ruoyi
 * @date 2018-11-20
 */
public class PaymentRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Integer id;
    /**
     *
     */
    private String recordId;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm", timezone = "GMT+8")
    private Date createTime;
    /**
     * 状态 1成功  2支付中 0取消
     */
    private String status;
    /**
     * 创建者
     */
    private String userId;
    /**
     * 最后修改时间
     */
    private Date editTime;
    /**
     * 商品名称
     */
    private String productName;
    /**
     * 商户订单号
     */
    private String merchantOrderNo;
    /**
     * 支付流水号
     */
    private String trxNo;
    /**
     * 银行订单号
     */
    private String bankOrderNo;
    /**
     * 银行流水号
     */
    private String bankTrxNo;
    /**
     * 商家名称
     */
    private String merchantName;
    /**
     * 商家编号
     */
    private String merchantNo;
    /**
     * 付款人编号
     */
    private String payerUserNo;
    /**
     * 付款人名称
     */
    private String payerName;
    /**
     * 付款方支付金额
     */
    private BigDecimal payerPayAmount;
    /**
     * 付款方手续费
     */
    private BigDecimal payerFee;
    /**
     * 付款方账户类型(参考:6.账户类型) 司机1
     */
    private String payerAccountType;
    /**
     * 收款人编号
     */
    private String receiverUserNo;
    /**
     * 收款人名称
     */
    private String receiverName;
    /**
     * 收款方支付金额
     */
    private BigDecimal receiverPayAmount;
    /**
     * 收款方手续费
     */
    private BigDecimal receiverFee;
    /**
     * 收款方账户类型
     */
    private String receiverAccountType;
    /**
     * 下单ip(客户端ip,从网关中获取)
     */
    private String orderIp;
    /**
     * 从哪个页面链接过来的(可用于防诈骗)
     */
    private String orderRefererUrl;
    /**
     * 订单金额
     */
    private BigDecimal orderAmount;
    /**
     * 平台收入
     */
    private BigDecimal platIncome;
    /**
     * 费率
     */
    private BigDecimal feeRate;
    /**
     * 平台成本
     */
    private BigDecimal platCost;
    /**
     * 平台利润
     */
    private BigDecimal platProfit;
    /**
     * 页面回调通知url
     */
    private String returnUrl;
    /**
     * 后台异步通知url
     */
    private String notifyUrl;
    /**
     * 支付方式编号
     */
    private String payWayCode;
    /**
     * 支付方式名称
     */
    private String payWayName;
    /**
     * 支付成功时间
     */
    private Date paySuccessTime;
    /**
     * 完成时间
     */
    private Date completeTime;
    /**
     * 是否退款(100:是,101:否,默认值为:101)
     */
    private String isRefund;
    /**
     * 退款次数(默认值为:0)
     */
    private Integer refundTimes;
    /**
     * 成功退款总金额
     */
    private BigDecimal successRefundAmount;
    /**
     * 交易业务类型  ：3消费、2充值等 1收入 4冻结
     */
    private String trxType;
    /**
     * 订单来源
     */
    private String orderFrom;
    /**
     * 备注
     */
    private String remark;
    /**
     * 银行返回信息
     */
    private String bankReturnMsg;
    /**
     * 账单ID
     */
    private String billId;
    /**
     * 交易日期
     */
    private String reqDate;
    /**
     *
     */
    private String delFlag;

    //用户账号
    private String phone;

    //是否支付成功
    private String isSuccess;

    public String getIsSuccess() {
        return isSuccess;
    }

    public void setIsSuccess(String isSuccess) {
        this.isSuccess = isSuccess;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setRecordId(String recordId) {
        this.recordId = recordId;
    }

    public String getRecordId() {
        return recordId;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserId() {
        return userId;
    }

    public void setEditTime(Date editTime) {
        this.editTime = editTime;
    }

    public Date getEditTime() {
        return editTime;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductName() {
        return productName;
    }

    public void setMerchantOrderNo(String merchantOrderNo) {
        this.merchantOrderNo = merchantOrderNo;
    }

    public String getMerchantOrderNo() {
        return merchantOrderNo;
    }

    public void setTrxNo(String trxNo) {
        this.trxNo = trxNo;
    }

    public String getTrxNo() {
        return trxNo;
    }

    public void setBankOrderNo(String bankOrderNo) {
        this.bankOrderNo = bankOrderNo;
    }

    public String getBankOrderNo() {
        return bankOrderNo;
    }

    public void setBankTrxNo(String bankTrxNo) {
        this.bankTrxNo = bankTrxNo;
    }

    public String getBankTrxNo() {
        return bankTrxNo;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantNo(String merchantNo) {
        this.merchantNo = merchantNo;
    }

    public String getMerchantNo() {
        return merchantNo;
    }

    public void setPayerUserNo(String payerUserNo) {
        this.payerUserNo = payerUserNo;
    }

    public String getPayerUserNo() {
        return payerUserNo;
    }

    public void setPayerName(String payerName) {
        this.payerName = payerName;
    }

    public String getPayerName() {
        return payerName;
    }

    public void setPayerPayAmount(BigDecimal payerPayAmount) {
        this.payerPayAmount = payerPayAmount;
    }

    public BigDecimal getPayerPayAmount() {
        return payerPayAmount;
    }

    public void setPayerFee(BigDecimal payerFee) {
        this.payerFee = payerFee;
    }

    public BigDecimal getPayerFee() {
        return payerFee;
    }

    public void setPayerAccountType(String payerAccountType) {
        this.payerAccountType = payerAccountType;
    }

    public String getPayerAccountType() {
        return payerAccountType;
    }

    public void setReceiverUserNo(String receiverUserNo) {
        this.receiverUserNo = receiverUserNo;
    }

    public String getReceiverUserNo() {
        return receiverUserNo;
    }

    public void setReceiverName(String receiverName) {
        this.receiverName = receiverName;
    }

    public String getReceiverName() {
        return receiverName;
    }

    public void setReceiverPayAmount(BigDecimal receiverPayAmount) {
        this.receiverPayAmount = receiverPayAmount;
    }

    public BigDecimal getReceiverPayAmount() {
        return receiverPayAmount;
    }

    public void setReceiverFee(BigDecimal receiverFee) {
        this.receiverFee = receiverFee;
    }

    public BigDecimal getReceiverFee() {
        return receiverFee;
    }

    public void setReceiverAccountType(String receiverAccountType) {
        this.receiverAccountType = receiverAccountType;
    }

    public String getReceiverAccountType() {
        return receiverAccountType;
    }

    public void setOrderIp(String orderIp) {
        this.orderIp = orderIp;
    }

    public String getOrderIp() {
        return orderIp;
    }

    public void setOrderRefererUrl(String orderRefererUrl) {
        this.orderRefererUrl = orderRefererUrl;
    }

    public String getOrderRefererUrl() {
        return orderRefererUrl;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setPlatIncome(BigDecimal platIncome) {
        this.platIncome = platIncome;
    }

    public BigDecimal getPlatIncome() {
        return platIncome;
    }

    public void setFeeRate(BigDecimal feeRate) {
        this.feeRate = feeRate;
    }

    public BigDecimal getFeeRate() {
        return feeRate;
    }

    public void setPlatCost(BigDecimal platCost) {
        this.platCost = platCost;
    }

    public BigDecimal getPlatCost() {
        return platCost;
    }

    public void setPlatProfit(BigDecimal platProfit) {
        this.platProfit = platProfit;
    }

    public BigDecimal getPlatProfit() {
        return platProfit;
    }

    public void setReturnUrl(String returnUrl) {
        this.returnUrl = returnUrl;
    }

    public String getReturnUrl() {
        return returnUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setPayWayCode(String payWayCode) {
        this.payWayCode = payWayCode;
    }

    public String getPayWayCode() {
        return payWayCode;
    }

    public void setPayWayName(String payWayName) {
        this.payWayName = payWayName;
    }

    public String getPayWayName() {
        return payWayName;
    }

    public void setPaySuccessTime(Date paySuccessTime) {
        this.paySuccessTime = paySuccessTime;
    }

    public Date getPaySuccessTime() {
        return paySuccessTime;
    }

    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public Date getCompleteTime() {
        return completeTime;
    }

    public void setIsRefund(String isRefund) {
        this.isRefund = isRefund;
    }

    public String getIsRefund() {
        return isRefund;
    }

    public void setRefundTimes(Integer refundTimes) {
        this.refundTimes = refundTimes;
    }

    public Integer getRefundTimes() {
        return refundTimes;
    }

    public void setSuccessRefundAmount(BigDecimal successRefundAmount) {
        this.successRefundAmount = successRefundAmount;
    }

    public BigDecimal getSuccessRefundAmount() {
        return successRefundAmount;
    }

    public void setTrxType(String trxType) {
        this.trxType = trxType;
    }

    public String getTrxType() {
        return trxType;
    }

    public void setOrderFrom(String orderFrom) {
        this.orderFrom = orderFrom;
    }

    public String getOrderFrom() {
        return orderFrom;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getRemark() {
        return remark;
    }

    public void setBankReturnMsg(String bankReturnMsg) {
        this.bankReturnMsg = bankReturnMsg;
    }

    public String getBankReturnMsg() {
        return bankReturnMsg;
    }

    public void setBillId(String billId) {
        this.billId = billId;
    }

    public String getBillId() {
        return billId;
    }

    public void setReqDate(String reqDate) {
        this.reqDate = reqDate;
    }

    public String getReqDate() {
        return reqDate;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("recordId", getRecordId())
                .append("createTime", getCreateTime())
                .append("status", getStatus())
                .append("userId", getUserId())
                .append("editTime", getEditTime())
                .append("productName", getProductName())
                .append("merchantOrderNo", getMerchantOrderNo())
                .append("trxNo", getTrxNo())
                .append("bankOrderNo", getBankOrderNo())
                .append("bankTrxNo", getBankTrxNo())
                .append("merchantName", getMerchantName())
                .append("merchantNo", getMerchantNo())
                .append("payerUserNo", getPayerUserNo())
                .append("payerName", getPayerName())
                .append("payerPayAmount", getPayerPayAmount())
                .append("payerFee", getPayerFee())
                .append("payerAccountType", getPayerAccountType())
                .append("receiverUserNo", getReceiverUserNo())
                .append("receiverName", getReceiverName())
                .append("receiverPayAmount", getReceiverPayAmount())
                .append("receiverFee", getReceiverFee())
                .append("receiverAccountType", getReceiverAccountType())
                .append("orderIp", getOrderIp())
                .append("orderRefererUrl", getOrderRefererUrl())
                .append("orderAmount", getOrderAmount())
                .append("platIncome", getPlatIncome())
                .append("feeRate", getFeeRate())
                .append("platCost", getPlatCost())
                .append("platProfit", getPlatProfit())
                .append("returnUrl", getReturnUrl())
                .append("notifyUrl", getNotifyUrl())
                .append("payWayCode", getPayWayCode())
                .append("payWayName", getPayWayName())
                .append("paySuccessTime", getPaySuccessTime())
                .append("completeTime", getCompleteTime())
                .append("isRefund", getIsRefund())
                .append("refundTimes", getRefundTimes())
                .append("successRefundAmount", getSuccessRefundAmount())
                .append("trxType", getTrxType())
                .append("orderFrom", getOrderFrom())
                .append("remark", getRemark())
                .append("bankReturnMsg", getBankReturnMsg())
                .append("billId", getBillId())
                .append("reqDate", getReqDate())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
